VOS - SMS versturen
Methoden in index.js
De methoden om te sms'en plaatsen we in het index.js bestand dat door Cordova werd aangemaakt. De reden hiervoor is dat die functionaliteit slechts beschikbaar in de app en niet op website. Bevendien moet die functionaliteit slechts toegankelijk zijn als de 'device ready' notificatie ontvangen is.
De methode om te sms'en roept twee callback functies op. De succes
methode wordt uitgevoerd als de bel plugin geactiveerd kan worden, de error
callback methode als de plugin niet geactiveerd kan worden.
var smsSend = function (number, message) { // CONFIGURATION var options = { replaceLineBreaks: false, // true to replace \n by a new line, false by default android: { intent: 'INTENT' // send SMS with the native android SMS messaging // intent: '' // send SMS without open any other app } }; var success = function () { alert('SMS is verstuurd!'); }; var error = function (e) { alert('SMS is niet verstuurd:' + e); }; if (typeof sms === 'undefined' || typeof sms.send === 'undefined') { alert('SMS send is undefined. Would have sent error'); } else { sms.send(number, message, options, success, error); } };
In de SMS
render methode wordt een knop aangemaakt als de gebruiker is aangemeld. Als de gebruiker op die knop klikt wordt de sendSMS
methode in index.js opgeroepen. Is de gebruiker niet aangemeld wordt het telefoonnummer getoond.
var render = { 'identity': function (querySelector) { ... }, 'procedure': { 'make': function (procedureCode) { ... }, 'TEL': function (item, message) { ... }, 'SMS': function (item, message) { // Het telefoonnummer van directie, secretariaat, ... is afhankelijk van de plaats var phoneNumber = getPhoneNumber(item.phoneNumber); if (vos.model.identity.loggedIn) { var buttonElement = makeTileButton('Tel', 'icon-send'); buttonElement.addEventListener('click', function () { vos.smsPrepare(phoneNumber, message); }); return buttonElement; } else { return makeTextElement(item.code + ' ' + phoneNumber, 'P'); } },
Tenslotte maken we het sms bericht aan in de methode smsPrepare
in de vos
namespace:
/**
* Created by jefin on 20/05/2017.
*/
var vos = {
'model' : {
...
},
'setModel': function () {
...
},
/**
* Geolocatie van de telefoon ophalen
*
*/
getPosition: function () {
...
},
/**
* De dichtsbijzijnde organisatie ophalen.
* https://stackoverflow.com/questions/21279559/geolocation-closest-locationlat-long-from-my-position
*/
setMyLocation: function () {
...
},
/**
* de property loggedIn van identity op false zetten
* en role op GAST
*/
logout: function () {
...
},
/**
* Ga naar de floor met de opgegeven view id en toon de tekst
* in title in het h1 element.
*
* @param {string} view text id van de floor die getoond moet worden.
* @param {string} title tekst die in het h1 element geplaatst moet worden.
*/
navigateTo: function (view, title) {
...
},
/**
* Voorbereiding versturen sms.
*
* @param {string} number telefoonnummer waarnaar sms gestuurd moet worden.
* @param {string} messageText boodschap die verstuurd zal worden.
*/
smsPrepare: function (number, messageText) {
// number = '0486788723';
var message = messageText + '\n' +
vos.model.identity.firstName + ' ' + vos.model.identity.lastName + '\n' +
vos.model.myLocation.name + '\n' +
vos.model.myLocation.street + '\n' +
vos.model.myLocation.postalCode + ' ' + vos.model.myLocation.city + '\n' +
number;
smsSend(number, message);
},
settings: function () {
...
}
};